package thread;

public class SyncDemo2 {
    public static void main(String[] args) {
        Shop shop = new Shop();
        Shop shop1 = new Shop();
        Thread t1 = new Thread("1"){
            public void run(){
                shop.buy();
                //shop1.buy();
            }
        };
        Thread t2 = new Thread("2"){
            public void run(){
                //shop.buy();
                shop1.buy();
            }
        };
        t1.start();
        t2.start();
    }
}
/*class Shop{
    public synchronized void buy(){
        try {
            Thread t = Thread.currentThread();
            System.out.println(t.getName()+"正在挑衣服");
            Thread.sleep(5000);
            System.out.println(t.getName()+"正在试衣服");
            Thread.sleep(5000);
            System.out.println(t.getName()+"正在结账");
        } catch (InterruptedException e) {

        }
    }
}*/
class Shop{
    public void buy(){
        try {
            Thread thread = Thread.currentThread();
            System.out.println(thread.getName()+"挑");
            Thread.sleep(2000);
            //synchronized (new Object()){//一定无效
            //synchronized ("abc"){//不是合适的锁对象，不要求排队的地方也排队

            synchronized (this){
                System.out.println(thread.getName()+"试");
                Thread.sleep(2000);
            }

            System.out.println(thread.getName()+"结账");
        } catch (InterruptedException e) {

        }

    }
}
